The present application describes systems and techniques relating to network traffic engineering such as multi-path analysis for managing machine communications in a network.
A network is a collection of nodes coupled together with wired or wireless communication links. Each node is capable of communicating with other nodes over the communication links using network protocols. A node may be any machine capable of communicating over the network using one or more of the network protocols. Multiple networks may be combined into a larger network using an inter-networking protocol, such as Internet Protocol (IP). Such larger networks typically include packet-routing nodes (e.g., routers, gateways, switches, bridges) and network-management nodes (e.g., network servers).
Forwarding data packets within a network and between networks is generally performed by routers using one or more routing protocols to exchange information about network topology (i.e., the current layout of the interconnections forming the network). This is generally known as “topology discovery” and “dynamic routing.” Each router typically maintains a graph representing the local network topology, and this graph is typically used to maintain a routing table.
Generally, two main types of routing protocols are used: interior gateway protocols (IGPs), and exterior gateway protocols (EGPs). An IGP typically is a protocol used by all the routers within a common networking system (e.g., an autonomous system within the Internet, a private network, a virtual private network, an enterprise network, etc.), which is frequently under a single administrative control. Typical examples of IGPs include distance-vector routing protocols such as Routing Information Protocol (RIP-2), and link-state routing protocols such as Open Shortest Path First (OSPF-2).
In a distance-vector routing protocol, each router sends messages (typically vectors of hop-count distances) to its neighboring routers describing the sending router's routing table. In a link-state routing protocol, each router actively monitors the state of links with the router's neighbors and broadcasts any changes in link-state to all the other routers in the network. Each router uses the link-state information to generate a directed graph that represents the network topology, which is then used to load the routing table with next-hop data.
An EGP typically is used between routers residing in different networking systems, and allows routers to exchange network reachability information. Typically, this information includes full path information for the networks to be crossed to reach other networks.
Network traffic engineering generally involves mapping traffic flows onto an existing physical topology in order to better utilize network resources. For example, MPLS (Multiprotocol Label Switching) is an IETF (Internet Engineering Task Force) initiative that routes packets based upon assigned labels in order to provide differential quality of service features for different network traffic.
Tunneling is a technique commonly used for creating virtual private networks (VPNs) on a public network. Tunneling typically involves encapsulating packets using one network protocol into packets using another network protocol.
Details of one or more embodiments are set forth in the accompanying drawings, in which like reference numerals refer to like components, and the description below. Other features and advantages may be apparent from the description and drawings, and from the claims.